package cn.edu.zafu.bigdata.fui;
/*题目描述：定义一个正方体类并实现相等性判断
设计一个表示正方体的类Cube，包含三个属性length、width和height，分别表示正方体的长、宽和高。重写equals方法，使得当两个正方体的长、宽和高均相等时，判断它们为相等。
具体要求：
1.定义属性：
类Cube中包含double类型的属性length、width和height，分别表示正方体的长、宽和高。
2.构造方法：
提供一个带参构造方法Cube(double length, double width, double height)，用于初始化正方体的长、宽和高。
3.获取方法：
为每个属性提供对应的getLength()、getWidth()和getHeight()方法，以便获取正方体的长、宽和高。
4.重写equals方法：
重写equals(Object obj)方法，定义正方体的相等性判断。
当两个Cube对象的length、width和height属性值都相等时，equals方法返回true，否则返回false。
注意：在实现equals方法时，需要先判断是否为同一对象，是否为空或类型不同等情况。
5.测试用例：
编写一个测试方法，创建若干个Cube对象，并测试不同对象间的相等性。
验证当两个正方体的长、宽和高相等时equals方法返回true，否则返回false。
* */
class Cube {
    private double length, width, height;
    Cube(double length, double width, double height){
        this.length = length;
        this.width = width;
        this.height = height;
    }

    public double getLength() {
        return length;
    }

    public double getWidth() {
        return width;
    }

    public double getHeight() {
        return height;
    }
    @Override
    public boolean equals(Object obj){
        if(!(obj.getClass() == this.getClass())) return false;
        Cube cubeObj = (Cube)obj;
        return this.length == cubeObj.getLength() && this.width == cubeObj.getWidth() && this.height == cubeObj.getHeight();
    }
}

public class TestCube {
    public static void main(String[] args) {
        Cube Cube1 = new Cube(1,2,3);
//        Cube Cube2 = new Cube(1,2,3);
        Cube Cube2 = new Cube(1,2,4);
        if(Cube1.equals(Cube2)) System.out.println("equals");
        else System.out.println("notEqual");
    }
}
